var module = {
    id: 'hello',
    exports: {}
}

var load = function(module) {
    // 读取到的代码
    function greet (name) {
        console.log('Hello, '+ name + '!');
    }
    module.exports = greet;
    return module.exports
}

var exported = load(module);

/**
 * node js 模块实现原理
 * 一句话来回答: 通过闭包实现
 * 详解:
 *      文件中的js代码 被node 放在一个自执行的函数中( (() => { 代码 })() ).这样,我们定义的所以变量都降级为局部变量,即闭包中的变量.
 * module 是node环境准备的为模块加载执行以及导出内容的工具类,module.exports为用户提供导出功能,这样可以是闭包有了输出的能力.
 * 
 */